/*
    编程使用二维数组和循环实现五子棋游戏棋盘的绘制
*/
public class ChessTableDraw {

    public static void main(String[] args) {
        
        // 1.声明一个String类型二维数组，行数与列数均为16。
        String[][] arr = new String[16][16];

        // 2.使用双重for循环给二维数组初始化，将其中每个元素赋值为"+"。
        for(int i = 0; i < arr.length; i++) {
            for(int j = 0; j < arr[0].length; j++) {
                arr[i][j] = "+";
            }
        }

        // 3.使用for循环将二维数组的列下标按照十六进制打印，并加上空格，输出棋盘的第一行。
        System.out.print("  ");
        for(int i = 0; i < arr[0].length; i++) {
            System.out.printf("%x",i);
            System.out.print(" ");
        }
        System.out.println();

        // 4.使用双重for循环打印，输出完整棋盘。
        // 使用外层for循环在每行的第一个位置将行下标按照十六进制打印，组成棋盘第一列。
        for(int i = 0; i < arr.length; i++) {
            System.out.printf("%x",i);
            System.out.print(" ");

            // 使用内层for循环打印棋盘的"+"部分。
            for(int j = 0; j < arr[0].length; j++) {
                System.out.print(arr[i][j] + " ");
            }
            System.out.println();
        }
    }
}